題目介紹及目標:
給定一個字串S,請判斷它是否可以成為 迴文 (Palindrome)。條件是:最多可以刪除一個字元。
迴文 的定義:正著讀和反著讀都一樣的字串,例如 "aba"、"abba"。
在這題裡,如果字串本來就是迴文,答案自然是 true。如果不是迴文,可以嘗試刪除某個字元,若刪除後能變成迴文,答案仍是 true;否則就是 false。只可以刪掉⼀個字元(或不刪),然後判斷這個字串是不是回⽂。如果可以,就回傳 true,否則回傳 false。
程式碼及成功執行畫面截圖:
(正確程式碼及每行註解)
(確認執行完畢畫面)
學習心得:
這題讓我更加了解了雙指針的使⽤⽅式,也學會了在遇到不匹配時,如何嘗試刪除左右其中⼀個字元來檢查⼦字串是否是回⽂。雖然⼀開始我有點混亂,不太確定什麼時候該刪左邊、什麼時候刪右邊,但在思考、跑範例之後,邏輯就清楚很多了。
我也學到寫程式時不能只想「⼀個⽅向」,要多考慮各種情況。像是 "abca" 這種例⼦,
如果不特別去考慮「刪左或刪右」兩種可能,就很容易錯過答案。
延伸邏輯結合時事面:
1.AI 語音辨識與輸入法容錯
當我們用語音輸入或打字時,AI 模型常會有 1~2 個字錯誤,但若整體文意正確,系統仍然能夠自動糾正或判斷你的意思。這就像「刪除一個字元仍能構成迴文」:重點不在於完全正確,而是 整體的正確性與可理解性。
2.假新聞與資訊驗證
網路上的假新聞有時候 90% 的內容都是真的,但只夾帶一個錯誤訊息。社會上必須學會「容忍少量瑕疵」與「辨認關鍵錯誤」。這對應到題目中的邏輯:能不能忽略一個小誤差,還是這個誤差會破壞整體正確性?
例如:一則新聞標題或日期錯誤,就可能影響人們對事件的判斷。
疫情後的健康政策調整在公共衛生決策中,並不是所有數據都要「100% 完美」。
政策制定時,允許數據中有少量缺漏或誤差(類似允許刪除一個字元),重點是 大方向是否仍能正確引導防疫。
這和題目一樣,強調「小錯誤不一定導致全盤否定」。